package com.vca.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @author Li
 * @description 用户详细报表vo类
 * @date 2023-02-21 09:57
 */

@Data
public class DetailClientVo implements Serializable {

    private static final long serialVersionUID = -3426021083167331159L;

    @ApiModelProperty(value = "用户编号")
    private Integer uid;

    @ApiModelProperty(value = "用户昵称")
    private String nickName;

    @ApiModelProperty(value = "订单id")
    private Integer orderId;

    @ApiModelProperty(value = "课程ID/套课ID/讲座ID/展览ID")
    private String mainId;

    @ApiModelProperty(value = "订单类型:0-课程订单 1=套课订单 2=讲座订单 3=展览订单 4=商品订单")
    private Integer type;

    @ApiModelProperty(value = "商品名称")
    private String name;

    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    @ApiModelProperty(value = "课程期数")
    private Integer periods;

    @ApiModelProperty(value = "支付时间")
    private Date payTime;

    @ApiModelProperty(value = "支付金额")
    private BigDecimal payPrice;

    @ApiModelProperty(value = "支付金额")
    private BigDecimal totalPayPrice;

    @ApiModelProperty(value = "支付类型")
    private String payType;

    @ApiModelProperty(value = "排期时间")
    private String schedulingDate;

    @ApiModelProperty(value = "排期付款金额")
    private String schedulingPrice;

    @ApiModelProperty(value = "订单状态")
    private String status;

    @ApiModelProperty(value = "子订单id")
    private String orderInfoId;

    @ApiModelProperty(value = "退款状态")
    private Integer refundStatus;

    @ApiModelProperty(value = "退款金额")
    private BigDecimal refundPrice;

    @ApiModelProperty(value = "退款时间")
    private Date refundTime;

    @ApiModelProperty(value = "0=用户购买  1=管理员赠送")
    private Integer userType;

    @ApiModelProperty(value = "发票调整日期")
    private String creditNoteTime;

    @ApiModelProperty(value = "发票调整金额")
    private BigDecimal creditNotePrice;

    @ApiModelProperty(value = "发票日期")
    private String invoiceTime;

    @ApiModelProperty(value = "发票金额")
    private BigDecimal invoicePrice;

    @ApiModelProperty(value = "商户单号")
    private String umsMerOrderId;

    @ApiModelProperty(value = "礼品卡卡号")
    private String cardNo;

    @ApiModelProperty(value = "兑换时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date useTime;

    @ApiModelProperty(value = "礼品卡id")
    private Integer cardId;

    @ApiModelProperty(value = "被使用礼品卡id")
    private Integer couponId;

    @ApiModelProperty(value = "兑换名称")
    private String couponName;

    @ApiModelProperty(value = "礼品卡状态")
    private Integer cardStatus;

    @ApiModelProperty(value = "礼品卡拥有者id")
    private Integer cardUid;

    @ApiModelProperty(value = "兑换课程的礼品卡编号")
    private String couponNo;

    @ApiModelProperty(value = "购买数量")
    private Integer payNum;

    @ApiModelProperty(value = "子订单号")
    private String merOrderId;

    @ApiModelProperty(value="核销时间")
    private String writeOffTime;
    @ApiModelProperty(value="快递单号")
    private String masterWaybillNo;
    @ApiModelProperty(value="快递时间")
    private Date deliveryTime;
}
